package MainThread;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;

import org.json.JSONObject;

import Bean.Msg;
import Windows.login;

/*
 * 
 * java -cp $CLASSPATH:/home/ubuntu/train/json.jar:/home/ubuntu/train/ MyServer
 * 
 * javac -cp /home/cys/lib/javacsv.jar /home/cys/test/CsvTest.java 
 * java -cp $CLASSPATH:/home/cys/lib/javacsv.jar:/home/cys/test/CsvTest CsvTest 
 * 约定输入输出的格式：
 * eg：类型（登录，聊天，修改密码）+ 自己的账户（cxy）+内容（聊天内容）+ 目的地（对方账户，服务器）
 * 
 * 
 * 待处理的问题：
 * 1.接收端接受的消息，不能发送到具体的每一个iTalk窗口；
 * 2.接受端接受的消息，假如当前iTalk不存在，存的位置；
 * 3.新用户上线，通知所有好友，刷新UI；
 * 4.服务端做一个返回好友列表的工具类；
 * 5.服务端，接受数据类型
 * 6.提取部分变量成局部变量
 * 
 * 类型：好友添加，好友列表申请
 * 
 * 退出后，发送退出请求
 * 
 */

public class MyClient {

	public static final int EXIT = 0;
	public static final int LOGIN = 1;
	public static final int REG = 2;
	public static final int CHAT = 3;
	public static final int ACK = 4;
	public static final int FRIEND = 5;
	public static final int ADD = 6;
	public static final int UAD = 7;// 用户上下线通知

	private static JLabel t_error;
	private static login loginframe;
	private static JTextField t_user;

	public static void main(String[] args) throws IOException {

		// Socket s = new Socket("123.206.212.238", 30000);
//		Socket s = new Socket("127.0.0.1", 30000);
		Socket s = new Socket("192.168.110.131", 30000);
		loginframe = new login(s);
		
		t_user = loginframe.getT_user();
		t_error = loginframe.getT_error();
		
		loginframe.setVisible(true);
		t_error = loginframe.getT_error();
		
		idtify(s);
	}

	public static void idtify(Socket s) {
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
			String message;
			if ((message = br.readLine()) != null) {
				System.out.println(message);
				JSONObject js = new JSONObject(message);
				switch (js.getInt("login_reg_chat_ack")) {
				case LOGIN:
					if (js.getString("content").equals("SUCCESS")) {
						System.out.println("登录成功");
						loginframe.dispose();

						new Thread(new ClientThread(s, t_user.getText())).start();

					} else if (js.getString("content").equals("FAIL")) {
						System.out.println("失败");
						t_error.setText("密码输入错误");
					}
					break;
				case REG:
					if (js.getString("content").equals("SUCCESS")) {
						System.out.println("成功");
						t_error.setText("注册成功");
					} else if (js.getString("content").equals("FAIL")) {
						System.out.println("失败");
						t_error.setText("注册失败");
					}
					break;
				default:
					break;
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return;
	}
}
